#ifndef BARUTIL_H
#define BARUTIL_H

#include <QObject>
#include <QGroupBox>
#include <QPaintEvent>
#include <QPainter>
#include <QPixmap>
#include "barcode.h"

#define LR_MARGIN_CODE128B 16  //code128B条形码左右留白宽度
#define LR_MARGIN_EAN13 2      //EAN13条形码左右留白宽度
#define TB_MARGIN_CODE128B 16  //code128B条形码上下留白宽度
#define TB_MARGIN_EAN13 22     //code128B条形码上下留白宽度
#define PEN_WIDTH 3 //画笔宽度 像素数


class BarUtil : public QObject
{
    Q_OBJECT
public:
    explicit BarUtil(QObject *parent = nullptr);

    bool setBarCode(QString barCodeSrc,BarCode::BarCodeType barCodeType, int setBarCodeHeight);//设置条码
    QPixmap paintBar(bool drawNumber);
    void savePicture();//保存图片

private:
    void drawBarCode(QPainter &painter,int x,int y, bool drawNumber=false);

    BarCode barCode;//负责条形码编码
    BarCode::BarCodeType barCodeType;//条码类型
    QString barCodeSrc;//存放条码原数据
    QString barCodeEncoded;//存放将条形码编码后的bs/01代码

    QPixmap pixmap;//保存条形码图片
    int barCodeWidth;//存储生成的条码宽度
    int barCodeHeight;//条码高度
};

#endif // BARUTIL_H
